﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using FacturacionII.Clases;
namespace FacturacionII.Formularios
{
    public partial class frmMaestroGiros : FacturacionII.Formularios.frmMaestro
    {
        clsGiro objGiro;
        frmPrincipal objPrincipal;

        public frmMaestroGiros()
        {
            InitializeComponent();
        }

        private void frmMaestroGiros_Load(object sender, EventArgs e)
        {
            this.grdListado.AutoGenerateColumns = false;
            this.CardarDatosGridView();
            this.AsignarPropiedadesDataGridView();
            sbMantenimiento.ExpandedPanel = sbpVer;
            txtCriterioBuscar.CharacterCasing = CharacterCasing.Upper;
            txtDescripcion.CharacterCasing = CharacterCasing.Upper;
        }

        public void CardarDatosGridView()
        {
            objGiro = new clsGiro();
            grdListado.DataSource = objGiro.CargarDatosGridView();
        }

        public void AsignarPropiedadesDataGridView()
        {
            grdListado.AutoGenerateColumns = false;
            grdListado.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            grdListado.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            grdListado.Columns[0].DataPropertyName = "CODIGO";
            grdListado.Columns[1].DataPropertyName = "DESCRIPCION";
            //grdListado.Columns[0].Width = 250; 
        }

        #region 'Metodos del boton NUEVO del MAESTRO Giro'

        public void LimpiarControles()
        {
            txtId.Text = "";
            txtCriterioBuscar.Text = "";
            txtDescripcion.Text = "";
        }

        // Metodos NuevoGuardar, Nuevo Limpiar, NuevoCancelar y NuevoSalir del BOTON NUEVO

        private void sbpNuevo_Click(object sender, EventArgs e)
        {
            stcPaneles.SelectedTab = stiRegistro;
            this.LimpiarControles();
            txtDescripcion.Select();
        }

        private void btnNuevoGuardar_Click(object sender, EventArgs e)
        {
            objGiro = new clsGiro();
            objPrincipal = new frmPrincipal(); objGiro.Guardar(txtDescripcion.Text.Trim(), objPrincipal.getIdUsuario());
            MessageBox.Show("SE REGISTRO EL NUEVO GIRO", "SISTEMA DE FACTURACION", MessageBoxButtons.OK,
                MessageBoxIcon.Information);
            txtDescripcion.Text = null;
            btnModificarSeleccionar.Enabled = true;
            btnModificarGuardarCambios.Enabled = false;
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            grdListado.DataSource = objGiro.CargarDatosGridView();
        }

        private void btnNuevoLimpiar_Click(object sender, EventArgs e)
        {
            this.LimpiarControles(); 
        }

        private void btnNuevoCancelar_Click(object sender, EventArgs e)
        {
            this.LimpiarControles();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
        }

        private void btnNuevoSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion


        #region 'Metodos del boton MODIFICAR del MAESTRO Giro'

        private void sbpModificar_Click(object sender, EventArgs e)
        {
            stcPaneles.SelectedTab = stiListado;
            btnModificarGuardarCambios.Enabled = false;
        }

        // Metodos ModificarSeleccionar, ModificarGuardarCambios, ModificarCancelar y ModificarSalir del BOTON MODIFICAR  

        private void btnModificarSeleccionar_Click(object sender, EventArgs e)
        {
            string codigo, descripcion;
            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            descripcion = grdListado.CurrentRow.Cells[1].Value.ToString();
            stcPaneles.SelectedTab = stiRegistro;
            txtId.Text = codigo.ToString();
            txtDescripcion.Text = descripcion;
            btnModificarSeleccionar.Enabled = false;
            btnModificarGuardarCambios.Enabled = true; 
        }
               
        private void grdListado_DoubleClick(object sender, EventArgs e)
        {
            string codigo, descripcion;
            codigo = grdListado.CurrentRow.Cells[0].Value.ToString();
            descripcion = grdListado.CurrentRow.Cells[1].Value.ToString();
            stcPaneles.SelectedTab = stiRegistro;
            sbMantenimiento.ExpandedPanel = sbpModificar;
            txtId.Text = codigo;
            txtDescripcion.Text = descripcion;
            txtDescripcion.Select();
            btnModificarSeleccionar.Enabled = false;
            btnModificarGuardarCambios.Enabled = true;
        }

        private void btnModificarGuardarCambios_Click(object sender, EventArgs e)
        {
            objGiro = new clsGiro();
            objPrincipal = new frmPrincipal();
            objGiro.GuardarCambios(int.Parse(txtId.Text), txtDescripcion.Text.Trim(),
                objPrincipal.getIdUsuario());
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            grdListado.DataSource = objGiro.CargarDatosGridView();
            btnModificarSeleccionar.Enabled = true;
            btnModificarGuardarCambios.Enabled = false;
        }

        private void btnModificarCancelar_Click(object sender, EventArgs e)
        {
            this.LimpiarControles();
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
            btnModificarSeleccionar.Enabled = true;
            btnModificarGuardarCambios.Enabled = false;
        }

        private void btnModificarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion


        #region 'Metodos del boton ELIMINAR del MAESTRO Giro'

        private void sbpEliminar_Click(object sender, EventArgs e)
        {
            stcPaneles.SelectedTab = stiListado;
        }

        // Metodos EliminarEliminar y EliminarSalir del MAESTRO Giro

        private void btmEliminarEliminar_Click(object sender, EventArgs e)
        {
            objPrincipal = new frmPrincipal();
            string id, descr_famili;
            id = grdListado.CurrentRow.Cells[0].Value.ToString();
            descr_famili = grdListado.CurrentRow.Cells[1].Value.ToString();
            DialogResult respuesta;
            respuesta = MessageBox.Show("DESEA ELIMINAR EL GIRO " + descr_famili,
                "SISTEMA DE FACTURACION", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (respuesta == DialogResult.Yes)
            {
                objGiro.Eliminar(int.Parse(id));
                grdListado.DataSource = objGiro.CargarDatosGridView();
            }
            sbMantenimiento.ExpandedPanel = sbpVer;
            stcPaneles.SelectedTab = stiListado;
        }

        private void btnEliminarSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion


        #region 'Metodos del boton VER del MAESTRO Giro'

        private void sbpVer_Click(object sender, EventArgs e)
        {
            stcPaneles.SelectedTab = stiListado;
        }

        private void btnVerImprimir_Click(object sender, EventArgs e)
        {
            // falta
        }

        private void btnVerSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion

        private void txtCriterioBuscar_TextChanged(object sender, EventArgs e)
        {
            objGiro = new clsGiro();
            if (string.Empty == txtCriterioBuscar.Text.Trim())
            {
                grdListado.DataSource = objGiro.CargarDatosGridView();
            }
            else
            {
                grdListado.DataSource = objGiro.BuscarDatosGridView(txtCriterioBuscar.Text.Trim());
            }
        }
        
    }
}

